E-mail inbox assistant to reduce context switching

ABSTRACT

A method for managing processing of electronic messages. The method includes a computer processor identifying one or more electronic messages. The method further includes a computer processor determining one or more e-mail characteristics respectively associated with the identified one or more electronic messages. The method further includes a computer processor determining an estimated electronic message processing duration for the identified one or more electronic messages based, at least in part, on weighting factors that are associated with the determined one or more e-mail characteristics. The method further includes a computer processor identifying a first unscheduled time slot within an electronic calendar of a user. The method further includes a computer processor scheduling the identified one or more electronic messages within the identified first unscheduled time slot of the electronic calendar of the user.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of electronicmessaging, and more particularly to handling and scheduling the readingof e-mail messages.

Electronic mail, most commonly referred to as email or e-mail is amethod of exchanging digital messages from an author to one or morerecipients. Modern e-mail operates across the Internet or other computernetworks. Today's e-mail systems are based on a store-and-forward model.E-mail servers accept, forward, deliver, and store messages. The senderof an e-mail and the recipient of the e-mail do not need to be onlinesimultaneously. The sender and recipient need connect only briefly,typically to a mail server, for as long as it takes to send or receivemessages. An e-mail message is comprised of at least three components,the message envelope, the message header, and the message body. Themessage header contains control information, including, minimally, anoriginator's (i.e., sender's) e-mail address and one or more recipientaddresses. Usually descriptive information is also added, such as asubject header field and a message submission date/time stamp. Inaddition, an e-mail message may contain text in various character setsand multi-media content attachments.

E-mail systems allow a user to send and receive information to and fromvarious sources and individuals. Sources of e-mail messages range frombusiness contacts to personal contacts, and social networks toadvertisements (which may or may not be solicited). Business relatede-mails often require a user to be responsive to superiors, coworkers,and clients. Whereas, personal e-mails and SPAM (i.e., undesiredelectronic messages) can detract from the productivity of a user.

SUMMARY

According to an aspect of the present invention, there is a method,computer program product, and/or system for managing processing ofelectronic messages. The method includes a computer processoridentifying one or more electronic messages. The method further includesa computer processor determining one or more e-mail characteristicsrespectively associated with the identified one or more electronicmessages. The method further includes a computer processor determiningan estimated electronic message processing duration for the identifiedone or more electronic messages based, at least in part, on weightingfactors that are associated with the determined one or more e-mailcharacteristics. The method further includes a computer processoridentifying a first unscheduled time slot within an electronic calendarof a user. The method further includes a computer processor schedulingthe identified one or more electronic messages within the identifiedfirst unscheduled time slot of the electronic calendar of the user.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a distributed data processing environment, inaccordance with an embodiment of the present invention.

FIG. 2 depicts a flowchart of the steps of an e-mail characterizationand timing program, in accordance with an embodiment of the presentinvention.

FIG. 3 depicts a flowchart of the steps of an e-mail characteristicanalysis program, in accordance with an embodiment of the presentinvention.

FIG. 4 depicts a flowchart of the steps of personal inbox assistantprogram, in accordance with an embodiment of the present invention.

FIG. 5 is a block diagram of components of a computer, in accordancewith an embodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the current invention recognize that one aspect ofsuccessful e-mail management is reducing context switching. Contextswitching between tasks and reacting to e-mails reduces the productivityof the user for a period of time after the user returns to the originaltask and regains the previous level of concentration. Proactivelyscheduling and processing e-mail messages can be time consuming, but thealternative, multi-tasking and continually reacting to each e-mail as itarrives throughout a day, can be distracting and stressful. Successfule-mail management can reduce distractions and improve user focus andproductivity. Embodiments of the current invention estimate the time auser may expend processing one or more e-mail messages and provides theuser a method to control how and when (e.g., auto-scheduling) the userprocesses the e-mail messages; thereby reducing context switching.

Embodiments of the current invention herein described relate to apersonal inbox assistant and associated support functions. A personalinbox assistant, in accordance with various embodiments of the currentinvention, can provide a user the ability to filter, categorize,prioritize, estimate the e-mail processing time, and auto-schedule someor all e-mail messages in a predictable manner. The personal inboxassistant may also manipulate the visibility of e-mail messages ore-mail folders, further reducing user distractions. Filtering permitse-mails containing predefined characteristics to be processed in onemanner and other e-mail are processed in a different manner.Categorizing permits the user to define parameters that the personalinbox assistant employs to group e-mail messages. Prioritization may actas an override to various user preferences. In some embodiments,estimation (of e-mail processing time) is based on weighting factorsderived from a historical database of e-mail processing information,interactions, user expended e-mail processing times, and characteristicsrespectively linked to the e-mails that the user processed. In otherembodiments, the weighting factors (e.g., coefficients) used tocalculate e-mail processing duration estimates are based on“crowd-sourced” e-mail processing information or a mix of“crowd-sourced” and user specific e-mail processing information.

The present invention will now be described in detail with reference tothe Figures. FIG. 1 is a functional block diagram illustratingdistributed data processing environment 100 in an embodiment, inaccordance with the present invention. An embodiment of distributed dataprocessing environment 100 includes server 102 and client device 120interconnected over network 110. Many modifications to the depictedenvironment may be made by those skilled in the art without departingfrom the scope of the invention as recited by the claims.

In one embodiment, client device 120 and server 102 communicate throughnetwork 110. Network 110 can be, for example, a local area network(LAN), a telecommunications network, a wide area network (WAN) such asthe Internet, or any combination of the previous and can include wired,wireless, or fiber optic connections. In general, network 110 can be anycombination of connections and protocols that will supportcommunications between client device 120 and server 102, in accordancewith embodiments of the present invention.

Server 102 may be a laptop computer, a tablet computer, a netbookcomputer, a personal computer (PC), a desktop computer, a personaldigital assistant (PDA), a smart phone, or any programmable computersystem known in the art. In certain embodiments, server 102 represents acomputer system utilizing clustered computers and components (e.g.,database server computers, application server computers, etc.) that actas a single pool of seamless resources when accessed through network110, as is common in data centers and with cloud-computing applications.In general, server 102 is representative of any programmable electronicdevice or combination of programmable electronic devices capable ofexecuting machine readable program instructions and communicating withclient computers, such as client device 120 via network 110. Server 102may include components, as depicted and described in further detail withrespect to FIG. 5, in accordance with embodiments of the presentinvention.

Server 102 includes e-mail file storage 104, hosted e-mail client 106,and hosted calendar client 108. In an embodiment, e-mail files arestored in e-mail file storage 104 and are transmitted (e.g., downloaded,etc.) to client device 120, via network 110, in response to a requestfrom e-mail application (app) 126. In another embodiment, e-mail filesremain stored on server 102 to be accessed by hosted e-mail client 106.In one scenario, hosted e-mail client 106 is an enterprise softwareapplication and e-mail file storage 104 on server 102 and file storage124 on client device 120 synchronize on a periodic basis. In anotherscenario, hosted e-mail client 106 is a web-based e-mail serviceaccessible via user interface (UI) 122 on client device 120. In oneinstance, the web-based version of hosted e-mail client 106 storese-mail files in e-mail file storage 104 on server 102. In anotherinstance, the hosted e-mail client 106 stores e-mail files in a location(not shown) on the Internet accessible via network 110. In someembodiments, the web-based version of hosted e-mail client 106 maysynchronize e-mail files with file storage 124 on client device 120.

In a different embodiment, hosted e-mail client 106 and hosted calendarclient 108 are supplied to the client device, via virtualizationtechnology, via network 110. In one scenario, hosted e-mail client 106and hosted calendar client 108 may be separate software applications. Inanother scenario, hosted e-mail client 106 and hosted calendar client108 are functions within an integrated “office” software application.Hosted e-mail client 106 and hosted calendar client 108 are provided bya virtual desktop infrastructure (VDI) or a desktop-as-a-service (DaaS),which may exist on server 102 or a cloud computing system (not shown)accessible via network 110. A user interfaces with hosted e-mail client106 and hosted calendar client 108 accessible via user interface (UI)122 on client device 120.

Client device 120 may be a personal computer (PC), a server, a laptopcomputer, a tablet computer, a netbook computer, a personal digitalassistant (PDA), a smart phone, a wearable device (e.g., digitaleyeglasses, smart glasses, smart watches), or any programmable computersystem operating wired or wirelessly (e.g., WAN, laser, infra-red) knownin the art. In general, client device 120 is representative of anyprogrammable electronic device or combination of programmable electronicdevices capable of executing machine readable program instructions andcommunicating with computers, such as server 102 via network 110. Clientdevice 120 may include components, as depicted and described in furtherdetail with respect to FIG. 5, in accordance with embodiments of thepresent invention.

Client device 120 includes user interface (UI) 122, file storage 124,e-mail application (app) 126, scheduler/calendar application (app) 128,e-mail interaction database 130, e-mail characterization and timing(ECT) program 200, e-mail characteristic analysis (ECA) program 300,inbox personal assistant (IPA) program 400, and various analyticalprograms (e.g., statistical, heuristic, etc.) (not shown). In someembodiments, ECT program 200, ECA program 300, and IPA program 400execute concurrently. A user of client device 120 can interact with UI122 via a singular device, such as touch screen (e.g., display) thatperforms both input to a graphical user interface (GUI) and as an outputdevice (e.g., a display) presenting a plurality of icons associated withsoftware applications or images depicting the executing softwareapplication. Optionally, a software application can generate UI 122operating within the GUI of client device 120. UI 122 accepts input froma plurality of input/output (I/O) devices (not shown) including, but notlimited to, a keyboard, a mouse, a trackball, a click wheel, a naturaluser interface (e.g., voice control unit, motion capture device, etc.),and a tactile sensor interface (e.g., a touch screen, a touchpad). TheI/O device interfacing with UI 122 may be a component of client device120 or may be connected to client device 120, which may operate wired(e.g., USB port) or wirelessly. The I/O devices provide input from theuser in making selections in response to information presented to theuser via UI 122.

In one embodiment, file storage 124 stores e-mail messages (e.g., files,associated content, etc.) on client device 120. In another embodiment,client device 120 periodically synchronizes e-mails stored in filestorage 124 on server 102. Additionally, file storage 124 also includesone or more user profiles, one or more calendars, statistical and otherdata analysis programs (not shown), and folders/libraries for processede-mail messages. User profiles are comprised of, but limited to, one ormore e-mail IDs or e-mail accounts accessed, one or more filters,schedule definitions (e.g., working hours, project time slots), minimume-mail time slot duration, e-mail flag designations, e-mail subfolders,e-mail/folder visibility, and e-mail processing preference rules (e.g.,mix of flags, mix of originators, inbox prioritization, event triggers,etc.). In some embodiments, user profiles are customizable to permit auser to tailor the appearance, preferences, interactions, and behaviorsof various user interfaces and program elements of the currentinvention.

In an embodiment, e-mail app 126 processes e-mail messages stored infile storage 124 on client device 120. In one scenario, e-mail app 126downloads e-mails from server 102 when e-mail app 126 is activated. Inanother scenario, e-mail app 126 downloads the e-mails associated with aspecific inbox or e-mail user ID when a user of client device 120selects an inbox or user ID. In some embodiments, e-mail app 126includes advanced e-mail functions. For example, e-mail app 126 mayinclude setting priority flags, setting follow-up flags, adding ane-mail to a “to do” list, capabilities to access multiple e-mail ID ande-mail systems, and capabilities to automatically execute anotherprogram configured to handle a file type associated with an attachmentlinked to an e-mail.

In an embodiment, scheduler/calendar app 128 processes the schedules andcalendars stored in file storage 124 on client device 120. In anotherembodiment, scheduler/calendar app 128 is associated with an enterpriseapplication, such as an integrated office environment.Scheduler/calendar app 128 periodically synchronizes calendars withhosted calendar client 108 executing on server 102 via network 110.

E-mail interaction database 130 stores information related to thecharacteristics of processed e-mails, user interactions and associatedtimings, default behavior information, and individual and sets ofweighting factors associated with various e-mail characteristics.

FIG. 2 is a flowchart depicting operational steps for e-mailcharacterization and timing (ECT) program 200, executing on clientdevice 120 within distributed data processing environment 100 of FIG. 1.ECT program 200 may execute in the foreground, or ECT program 200 mayexecute in the background. Similarly, the behavior of ECT program 200may vary based on the e-mail application invoked by a user. In oneembodiment, ECT program 200 responds to e-mails processed on clientdevice 120. In another embodiment, ECT program 200 responds to e-mailsprocessed on server 102. ECT program 200 subsequently identifies theduration of the user interactions. In one embodiment, ECT program 200monitors the interactions and timing associated with processing ane-mail message utilizing e-mail app 126. In another embodiment, ECTprogram 200 monitors the interactions and timing associated withprocessing an e-mail message utilizing hosted e-mail client 106. In adifferent embodiment, ECT program 200 and an e-mail client (not shown)executes within a virtualized environment, such as the Cloud via VDI orDaaS. ECT program 200 detects if the engagement of a user shifts andpauses one or more timers collecting duration data associated withprocessing an e-mail message. The shift in engagement may be associatedwith the execution of other software apps and the status of the e-mailapplication, or it may be related to client device 120 (e.g., sleepmode, desktop locking, etc.). ECT program 200 tracks both completede-mail processing and partial e-mail processing and stores theinformation in e-mail interaction database 130.

In step 202, ECT program 200 detects a user processing an e-mail messagevia client device 120. In once scenario, ECT program 200 executes in thebackground on client device 120. In another scenario, ECT program 200activates in response to a user activating an e-mail processing. In oneembodiment, ECT program 200 detects the user interacting with e-mail app126 executes to process the e-mail message. In another embodiment, ECTprogram 200 detects the user interacting with hosted e-mail client 106and executes to process the e-mail message.

In decision step 203, ECT program 200 determines whether a userre-engages with a previously identified e-mail. If ECT program 200determines that the e-mail is new or was not previously tracked, thenre-engaging does occur (no branch, decision step 203). ECT program 200subsequently determines various attributes associated with the e-mailmessage.

In step 204, ECT program 200 determines the meta-data andcharacteristics of an e-mail message. ECT program 200 stores themeta-data and e-mail message characteristics in e-mail interactiondatabase 130 for subsequent sorting and analysis to determine the effectvarious e-mail message characteristics have on the duration ofprocessing an e-mail message. In one embodiment, ECT program 200identifies the characteristics associated with an e-mail message. Forexample, e-mail characteristics identified are an originator (e.g.,e-mail ID and e-mail system), priority flag, meta-data (e.g., tags,labels, keywords, etc.), subject, Internet links, attachment type andsize, and base e-mail message size. Additionally, ECT program 200determines whether the subsequent scheduling of one or more e-mailmessages are constrained by a “deadline” or “respond by date.”

In step 205, ECT program 200 identifies scheduling constraintsassociated with an e-mail message. For example, an e-mail message cancontain meta-data in the header information that identifies a deadlineor a “respond by date.” In one embodiment, ECT program 200 modifies theordering or prioritization of an e-mail message containing a schedulingconstraint. In another embodiment, ECT program 200 modifies thevisibility of an e-mail message containing a scheduling constraint.

In step 206, ECT program 200 starts a timer for a new or previouslyuntracked e-mail message. In one embodiment, ECT program 200 tracks thetime duration to process an e-mail message via a single timer. Inanother embodiment, ECT program 200 associates a separate timer for eachcontent item within the e-mail message. In some embodiments, theseparate timers do not activate until the associated content item isprocessed. For example, the e-mail/text with the e-mail are assigned afirst timer, a URL is assigned a second timer, and a word processingdocument is assigned a third timer. In a scenario, the first timerremains active while the user browses the URL associated with the e-mailmessage. The second timer notes the duration for the interaction withthe URL by the user.

Referring back to decision step 203, if ECT program 200 determines thata user is re-engaging with a partially processed e-mail message (yesbranch, decision step 203), then ECT program 200 restarts thecorresponding one or more timers (in step 206). In one embodiment, theduration associated with the processing of an e-mail message is trackedvia a single timer. In one scenario, the user returns to the originale-mail message or the user returns to a content item previouslyassociated with the e-mail message, and ECT program 200 restarts thetimer associated with the e-mail message (in step 206). In an instance,the user retrieves an e-mail message from the “trash” folder andre-engages with the e-mail message. ECT program 200 updates theinformation and status for the e-mail in e-mail interaction database130. In another scenario, ECT program 200 determines that a shift inuser engagement (e.g., focus) is attributed to the user locking thedesktop of client device 120. If e-mail app 126 or hosted e-mail client106 is not minimized or the program handling the content (e.g.,attachment, URL, etc.) e-mail message is not minimized, is active, andis in view on the desktop, ECT program 200 restarts the timer when theuser unlocks the desktop. In another embodiment, ECT program 200activates more than one timer. In one scenario, the user of clientdevice 120 opens a second e-mail message to obtain information needed torespond to a first e-mail. In another scenario, ECT program 200 starts adifferent timer for each content item associated with the e-mail messageto which the user is responding. ECT program 200 maintains a log of theinteractions and durations of fully processed e-mail messages andpartially processed e-mail messages. For example, a user needs to lookup information from various sources to respond to an e-mail message.Each instance of the user re-opening an e-mail message and addingcontent increases the total time that ECT program 200 associates withprocessing the e-mail message.

In step 208, ECT program 200 determines whether the user of clientdevice 120 maintains engagement with the e-mail message or theassociated content. Engagement refers to a relationship between a userand an object (e.g., visual representation) in the form of selectiveattention (i.e., focus) and interactions. For example, ECT program 200traces the activity of a user when the user activates a uniform resourcelocator (i.e., URL) link, which in turn responds by executing a webbrowser. However, if the user switches to a different webpage or URL,ECT program 200 may identify that the switch in focus corresponds to ashift in engagement. In one embodiment, ECT program 200 monitors thestatus of the window that displays when an e-mail message is opened. Inone scenario, ECT program 200 determines that the e-mail window isminimized signaling user disengagement. In another scenario, the e-mailwindow remains open in one portion of the desktop; however, the userexecutes another program or opens another window signaling a change infocus, and ECT program 200 responds to the change in focus by initiatinga second timer. In one instance, ECT program 200 determines that theuser switched between the e-mail window and the other window within aduration identified within a user profile. ECT program 200 infers thatthe information within the other window is associated with responding tothe e-mail message, and ECT program 200 determines that engagement ismaintained. In another instance, ECT program 200 determines that theuser shifted focus to the other window longer than the durationidentified within a user profile. ECT program 200 determines that theuser has disengaged from the e-mail message. ECT program 200 flags thestart time of the second timer as the point in time that the userdisengaged from the e-mail message.

In another embodiment, ECT program 200 tracks the interactions of theuser with content (e.g., URL, attachments, embedded multi-media file,etc.) associated with the e-mail message, and ECT program 200 determineswhether the user maintains engagement with the e-mail message. In onescenario, ECT program 200 tracks the interaction of a user with theembedded content (e.g., URLs) and attachments (e.g., word processingdocument). Content items are associated with different e-mailcharacteristics (e.g., file extension). For example, a spreadsheet filemay take longer to process than a word processing document that is read.However, if the same word processing document is edited and re-attachedto the e-mail message as part of a response, then editing a document cantake longer than reviewing a spreadsheet. Therefore, ECT program 200 canidentify secondary characteristics associated with content items of ane-mail message (e.g., spreadsheet-read, word processing document-read,word processing document-modified) and incorporate the secondarycharacterizes within e-mail interaction database 130. In anotherscenario, the e-mail has a word-processing file attached. ECT program200 identifies minimizing the window of the word processor (not shown)and the e-mail application as a shift in engagement. In a differentscenario, a user completes interacting with a content item associatedwith an e-mail message. The timer associated with the e-mail messagecontaining the content remains unaffected; however, the content istreated as if the engagement of the user shifted.

In a different embodiment, ECT program 200 monitors system functions orsystem attributes of client device 120 to detect events that signifyuser disengagement from the e-mail message. For example, locking thedesktop, initiating sleep mode on client device 120, lack of I/Oactivity for a predetermined time period signals ECT program 200 thatthe user disengaged from processing the e-mail message. In anotherexample, if client device 120 was accessing hosted e-mail client 106 onserver 102 and connectivity with network 110 was lost, then ECT program200 may identify the loss of network connection a shift in engagement(no branch, decision step 210). If client device 120 can interact via UI122 with the web-browser and process any e-mail messages downloaded toclient device 120 in an “off-line,” then mode ECT program 200 maydetermine that the user maintained engagement.

In decision step 210, in response to determining that the userengagement shifts from the e-mail message or content associated with thee-mail message (yes branch, decision step 210), ECT program 200subsequently pauses the one or more timers associated with the e-mailmessage being processed or content associated with the e-mail message.Additionally, ECT program 200 stores the e-mail processing (i.e.,status) information to date in e-mail interaction database 130 (in step211).

In step 211, ECT program 200 pauses one or more timers and stores theinformation associated with the e-mail, including the current processingtime(s) in e-mail interaction database 130. In one embodiment, ECTprogram 200 pauses one or more timers based on information andinteractions from client device 120. For example, locking the desktoppauses the active timers. In another example, ECT program 200 pollsclient device 120 for a status of keyboard and mouse activities (i.e.,I/O activity). If ECT program 200 determines that the lack of I/Oactivity surpasses a threshold, ECT program 200 pauses the activetimers. In another embodiment, ECT program 200 responds to a shift inuser engagement (e.g., focus). In one scenario, a user minimizes thee-mail processing program. In one instance, the e-mail processingprogram is e-mail app 126 executing on client device 120. In anotherinstance, the e-mail processing program is hosted e-mail client 106executing on server 102.

If ECT program 200 determines that a user did not shift focus (e.g.,disengage) from the e-mail message and associated content (no branch,decision step 210), then ECT program 200 pauses to determine the outcomeof the e-mail processing (in step 212).

In step 212, ECT program 200 determines the outcome of the processing ofan e-mail message. Examples of outcomes include moving an e-mail messageto a folder other than the inbox, saving an e-mail message as a draft,deleting the e-mail message, responding to the e-mail message, closingthe e-mail message, tagging the e-mail message for follow-up, andforwarding the e-mail to another user. In one embodiment, a single timeris active tracking the interactions and outcome of the processing of ane-mail. In one scenario, the e-mail message is a new e-mail message andis tracked as one group of interactions. In another scenario, the userreturns to complete the processing of an e-mail response that saved as adraft message. In another embodiment, ECT program 200 has multipletimers associated with the different content items within an e-mailmessage. As each content item is closed (e.g., indication of userengagement), ECT program 200 responds through the yes branch of decisionstep 210 and subsequently pauses the timer associated with the contentitem and stores the information in e-mail interaction database 130 (instep 211).

In step 214, ECT program 200 stops one or more timers associated withthe outcome of the e-mail processing and saves the e-mail status (e.g.,outcome) information in e-mail interaction database 130. In oneembodiment, the time associated with the response to an e-mail messageis a singular time based value associated with one or morecharacteristics. In another embodiment, ECT program 200 stores data frommultiple timers, some respectively associated with content andcharacteristics associated with the e-mail message in e-mail interactiondatabase 130.

FIG. 3 is a flowchart depicting operational steps for e-mailcharacteristic analysis (ECA) program 300, executing on client device120 within distributed data processing environment 100 of FIG. 1. In oneembodiment, ECA program 300 executes concurrently with ECT program 200and IPA program 400. In another embodiment, ECA program 300 executes ona periodic basis. In one scenario, ECA program 300 creates additionalweighting factor sets for a user. In another scenario, ECA program 300adjusts the values of the weighting factors (e.g., coefficients) as theincreased historical information, associated with e-mail processing,improves the accuracy of analytical methods employed to calculate theweighting factors. Weighting factor information is stored within e-mailinteraction database 130. In a different embodiment, weighting factorsmay be based on e-mail processing time data gathered from a plurality ofusers. In one scenario, the weighting factors determined from aplurality of users is the basis for the default behavior. In anotherscenario, a user can transition (e.g., over time, once personalhistorical processing is available) from the weighting factors derivedfrom a plurality of users to weighting factors derived from personalhistorical e-mail processing data, or a user may elect to use a mix ofweighting factors from various sources.

In decision step 302, if ECA program 300 determines that a set ofweighting factors are not calculated for a user profile (no branch,decision step 302), then ECA program 300 determines if a user profileidentifies one or more rules or settings associated with a defaultbehavior. In one embodiment, a default behavior is defined within a userprofile. In another embodiment, a default behavior is stored on e-mailinteraction database 130.

In decision step 304, if ECA program 300 determines that a user profiledoes not identify one or more rules or settings associated with adefault behavior (no branch, decision step 304), then ECA program 300subsequently deactivates IPA program 400 (in step 306).

In step 306, ECA program 300 deactivates IPA program 400 until the usermodifies a user profile to set default values for e-mail processingtimes, accepts a default e-mail processing behavior, or copies one ormore e-mail weighting factors from another source to the active userprofile. Subsequently, ECA program 300 analyzes recently acquired e-mailmessage processing time information from ECT program 200 and e-mailinteraction database 130 to determine whether sufficient data isavailable to determine one or more weighting factors (e.g.,coefficients).

Referring to decision step 304, in an embodiment, if ECA program 300determines that the user profile permits one or more default behaviors(e.g., algorithm, base-line weighting factors, etc.) (yes branch,decision step 304), then ECA program 300 loads the default informationfor subsequent use by IPA program 400. In one scenario, a defaultbehavior is defined within a user profile. In another scenario, adefault behavior is stored on e-mail interaction database 130.

In another embodiment, server 102 provides a hosted e-mail client 106, ahosted calendar client 108, and a hosted version of e-mail interactiondatabase 130 (not shown), which also resides on server 102. ECT program200, ECA program 300, and IPA program 400 are executed by a plurality ofusers employing a plurality of client devices communicating with server102 via network 110. In this embodiment, information associated withe-mail message processing (e.g., characteristics, timings, weightingfactors) is not shared. In a different embodiment, the hostingprovisions for server 102 allow server 102 access to aggregatenon-personal, e-mail characteristic information, and e-mail processtimings from the hosted version of e-mail interaction database 130 (notshown). In one scenario, server 102 provides a hosted e-mail client 106and a hosted calendar client 108 as an enterprise service. A hostedversion of e-mail interaction database 130 allows server 102 tocalculate a default behavior, a base-line set of weighting factors, orsets of weighting factors related to users with similar profiles. Forexample, a set of weighting factors may be shared among a business unit,a job description, or a department. In another scenario, server 102provides a hosted e-mail client 106 and a hosted calendar client 108 asan Internet service. An Internet-based version of e-mail interactiondatabase 130 (not shown) allows server 102 to calculate a defaultbehavior, a base-line set of weighting factors, or sets of generalized(e.g., user community based) weighting factors for users of the hostedservices. A user may set up a profile that instructs server 102 toprovide a user specific set of weighting factors.

Referring to decision step 304, in an embodiment, if ECA program 300determines that one or more sets of weighting factors exist for a userprofile (yes branch, decision step 304), then ECA program 300 analyzesrecent e-mail processing information obtained by ECT program 200 andhistorical data from e-mail interaction database 130 (in step 308).

In step 308, ECA program 300 analyzes one or more e-mail characteristicsrespectively associated with e-mail processing (e.g., timing)information obtained by ECT program 200. ECA program 300 stores thesubsequent results of the analysis in e-mail interaction database 130.In addition, ECA program 300 determines which e-mails are associatedwith processing times that are not accurately estimated (e.g., outliers)and flags these e-mail entries in e-mail interaction database 130. Forexample, an outlier may be an e-mail that is associated with aprocessing time more than 2 standard deviations different that theaverage for the estimation. In one embodiment, ECA program 300 employsvarious analytical and mathematical methods (e.g., ANOVA, linearregressions, multivariate regression, etc.) to determine therelationships between e-mail characteristics and e-mail processingtimes. In one example, the processing time for e-mail messages from onegroup of originators is substantially affected by the size of anattachment. In another example, if the subject is “Human resource . . .”, then the e-mail processing time is strongly affected by the length ofthe e-mail text length.

In another embodiment, ECA program 300 utilizes heuristics and machinelearning to identify the source for the outliers in the data. In ascenario, one group of outliers are attributed to a specific originator.ECA program 300 determines that there is a minimum 5 minuteunanticipated additional e-mail processing time associated with handlingan e-mail from this specific originator. For example, ECA program 300cannot determine that the source of the extra time to process an e-mailfrom the specific originator is related to a phone call required by theoriginator of the e-mail. However, ECA program 300 may add a 5 minutebias to the e-mail message processing duration calculations for thespecific originator (e.g., the ID of the e-mail originator is animportant characteristic in this instance) in e-mail interactiondatabase 130. In this example, ECA program 300 determines that aconstant (i.e., a bias) is applied to e-mail estimation calculation asopposed to a weighting factor that determines a duration in which acharacteristic is a variable.

In step 310, ECA program 300 determines the weighting factors for e-mailcharacteristics. In one embodiment, ECA program 300 further analyzes thee-mail characteristic and timing information from step 308. In onescenario, historical e-mail processing data for a user is the basis ofthe weighting factor calculations. This scenario produces resultsconsistent to a user once sufficient historical e-mail processing datais collected, and the weighting factor calculations improve asadditional e-mail processing data is incorporated. However, initiale-mail processing time estimates are delayed and may be inaccurate. Forexample, ECA program 300 may not assign a weighting factor to an e-mailcharacteristic that has a large standard deviation or a low confidenceinterval. However, once sufficient historical e-mail processing data isaccumulated, ECA program 300 may determine that when paired with anothere-mail characteristic, the characteristic without a weighting factor canbe assigned a weighting factor when the two e-mail characteristics arerelated as a set. In another scenario, crowd-sourced (e.g., departmentbased, enterprise based, Internet based) e-mail processing times mayprovide immediate weighting factors for ECA program 300 to utilize;however, e-mail processing time estimates may not be highly accurate. Ina different scenario, a user may utilize a hybrid approach. For example,the user starts with crowd-sourced weighting factors (e.g., 100%) and nouser based weighting factors (e.g., 0%). As the historical e-mailprocessing data accumulates, the percentage of crowd-source weightingfactors diminish and user based weighting factors increase (e.g. 90/10,70/30, 50/50, 25/75, 0/100). In one instance, ECA program 300periodically adjusts the weighting factor percentages based on thestatistical significance of the historical e-mail processing data. Inanother instance, the user manually adjusts the percentages. In anotherembodiment, ECA program 300 determines that one or more weightingfactors are related. In one scenario, interacting weighting factors arehandled utilizing logical operations that subsequently are utilized byECA program 300 to create weighting factor sets (in step 312). Inanother scenario, ECA program 300 determines that interacting weightingfactors either amplify or reduce the effect of one or more weightingfactors. In one instance, ECA program 300 determines that there is aspecific weighting factor applied to an e-mail containing a spreadsheetattachment or a word processing document. However, in another instance,if an e-mail contains both a spreadsheet and a word processing document,the results may be a non-linear function. In this instance for example,the weighting factor may be amplified by a power factor

${WFsh}^{({1 + {(\frac{WPD}{100})}})}$where WFsh=weighting factor for a spreadsheet and WPD=the size of theword processing document in kilobytes.

In step 312, ECA program 300 creates sets of weighting factors used forone or more user profiles. In one embodiment, the sets of weightingfactors are based on the e-mail processing times associated with clientdevice 120. In one scenario, the user creates a profile based on“normal” daily activities. In another scenario, the user creates an “endof quarter” profile with different requirements or rules. In a differentscenario, ECA program 300 automatically creates one or more userprofiles and associated weighting factor sets based on statisticalmodels, mathematical models, heuristics, and machine learning. Inanother embodiment, a user is provided a list of default behaviors orweighting factors to use while the e-mail interaction database 130acquires historical e-mail processing data. In one scenario, the defaultbehaviors are associated with an installation package that installse-mail interaction database 130, ECT program 200, ECA program 300, andIPA program 400 on client device 120. In another scenario, ECT program200 determines default behaviors and sets of weighting factors byaggregating e-mail processing time for hosted e-mail client 106 onserver 102.

FIG. 4 is a flowchart depicting operational steps for inbox personalassistant (IPA) program 400, executing on client device 120 withindistributed data processing environment 100 of FIG. 1. IPA program 400provides a user a method to control which e-mails to auto-schedule andthe visibility of the auto-scheduled e-mail messages.

In step 402, IPA program 400 activates a scheduling/calendar function(e.g., software application). If the scheduling/calendar function isactive, then IPA program 400 interfaces with scheduler/calendar app 128.In one embodiment, scheduler/calendar app 128 executes on client device120. In another embodiment, the calendar function employed by a userexecutes on server 102 (e.g., hosted calendar client 108). Hostedcalendar client 108 is accessed via network 110 through UI 122.

In step 404, in one embodiment, IPA program 400 determines which userprofile is active for the current e-mail processing session and thevalue of current time and date. In one scenario, IPA program 400 isactivated prior to any scheduled events (e.g., meetings, appointments,etc.). IPA program 400 has access to a full day schedule for a user. Inanother scenario, IPA program 400 is executed after the start of aworkday. In an instance, IPA program 400 queries a user if the userwants to process e-mails past the end of the day and to define theperiod of time. In another embodiment, IPA program 400 determines whichuser profile to select by identifying the current time and date. In onescenario, a user executes IPA program 400 during a non-scheduled workingtime. For example, after normally scheduled hours or on a weekend. IPAprogram 400 determines that an indication was set identifying thatpriority or deadline identified e-mails are unprocessed. In anotherscenario, IPA program 400 provides the user a list of profiles fromwhich to choose. In an instance, the user selects a profile; however,the user adjusts a constraint (e.g., how long to work) in the profile.IPA program 400 adjusts the behavior of the session based on the one ormore constraints.

In step 406, in one embodiment, IPA program 400 identifies unprocessede-mail messages and determines whether scheduling constraints (e.g., duedate, respond by date, expiration date, etc.) apply to one or more ofthe identified unprocessed e-mail messages. In another embodiment, IPAprogram 400 determines that one or more new e-mails arrived anddetermines whether constraints are associated with any new e-mails. Inone scenario, e-mail app 126 is part of an integrated office applicationthat synchronizes with server 102 on a periodic basis. In anotherscenario, a user manually executes an update or refresh function toquery server 102 for new e-mail messages.

In step 408, IPA program 400 receives user input associated with whiche-mails are identified for auto-scheduling. Additionally, IPA program400 determines the characteristics of each e-mail designated forauto-scheduling. IPA program 400 combines the characteristics withweighting factors to estimate a processing time for each auto-schedulede-mail message. In one embodiment, IPA program 400 responds to userinput to determine which unprocessed e-mails are designated forauto-scheduling. In one scenario, IPA program 400 auto-schedules allselected e-mails based on the active user profile and e-mails withassociated constraints. In another scenario, IPA program 400 providesthe user with one or more auto-scheduling options. In one instance, theuser may apply various indications or flags to unprocessed emails, andIPA program 400 auto-schedules the flagged e-mail messages based on thedefinitions assigned to the indications or flags within the active userprofile. In another instance, a user indicates that a primary sortingcriteria is e-mail messages size. For example, organizing theauto-scheduled e-mails in order of increasing size. In anotherembodiment, IPA program 400 determines from the active user profilewhich e-mail messages, inboxes, or e-mail IDs are designated forauto-scheduling without user intervention.

In step 410, IPA program 400 calculates a response time for each e-mailmessage identified to be auto-scheduled. Additionally, IPA program 400categorizes the e-mail messages to be auto-scheduled based on anyscheduling constraints associated with an e-mail and the active userprofile. In one embodiment, IPA program 400 employs weighting factorsbased on the analysis of historical e-mail processing times. In onescenario, IPA program 400 employs multiple sets of weighting factors tocalculate the estimated processing time for each e-mail message. The setof weighting factors employed by IPA program 400 is dictated, at leastin part, by the active user profile and the characteristics associatedwith an e-mail message. In another scenario, IPA program 400 employsdefault behaviors (e.g., weighting factors or algorithms associated witha user profile) set by ECA program 300 (in decision step 304). Inanother embodiment, IPA program 400 categorizes the e-mails selected forprocessing auto-scheduling. IPA program 400 categorizes the e-mailsbased on rules of filters identified within the active user profile. Inone scenario, IPA program 400 categorizes the e-mails selected forprocessing auto-scheduling based on constraints and then originator. Inanother scenario, IPA program 400 categorizes the e-mails selected forprocessing auto-scheduling based on constraints and then on e-mailcharacteristics. In one instance, the active user profile identifiesattachment and attachment size as the e-mail characteristic used by IPAprogram 400 to be a primary filter. In another instance, the active userprofile categorizes the e-mail based on user set flags; however, IPAprogram 400 identifies a secondary filter that dictates how flaggede-mails are scheduled. For example, the secondary filter instructs IPAprogram 400 to schedule one e-mail message from each flagged categoryfor each auto-scheduled e-mail processing time slot.

In step 412, IPA program 400 determines unscheduled time slots that areavailable within the calendar (e.g., scheduler/calendar app 128) of auser and how much time is available at each time slot of a usercalendar. In one embodiment, IPA program 400 is able to auto-schedulee-mail processing to occur in any unscheduled time slot. In anotherembodiment, IPA program 400 is constrained by information within theactive user profile. In one scenario, a user specifies that projects areworked during time slots of specific durations. For example, the userwill work on projects for a period of between 2 and 3 hours. IPA program400 can auto-schedule e-mail processing for unscheduled time slots ofless than 2 hours or beginning after the third hour of project work. Inanother scenario, IPA program 400 identifies that the user beginsprocessing auto-scheduled e-mails during a time slot that was previouslyidentified as unavailable. IPA program 400 may signal the user for anindication of whether or not the user intends IPA program 400 toreschedule the remaining unprocessed e-mail messages (subsequently instep 414).

In step 414, IPA program 400 schedules (e.g., assigns) the categorizede-mails based on the active user profile and one or more unscheduledtime slots. The estimated e-mail processing (e.g., response) time forindividual e-mails is previously determined in step 410. Categorizede-mail messages may be stored in a plurality of folders and sub-folders.IPA program 400 calculates an aggregate e-mail processing time for eachcategory, folder, and sub-folder. In one embodiment, IPA program 400auto-schedules the e-mail messages identified for processing, based atleast in part, on one or more e-mail constraints, e-mail categories,estimated e-mail processing duration, and the shortest available timeslot (determined in step 412) in the schedule of a user. In anotherembodiment, IPA program 400 auto-schedules the e-mail messagesidentified for processing based on any e-mail constraints and thelargest unscheduled time slot. In one scenario, IPA program 400 receivesan indication that distractions are minimized. IPA program 400 selectsconstrained or high-priority e-mails for processing first, then the userindicates, via the UI 122, that the user will process the largest groupof e-mails that can be scheduled for the next available time slot. Inanother scenario, a user indicates or selects a specific category ofe-mails that have an aggregated processing time greater than anavailable time slot. IPA program 400 determines if the selected categoryof e-mails includes priorities or constraints and divides the e-mails ofthe selected category between two or more time slots. Alternatively, inanother scenario, a user does not complete processing of the e-mailsassigned to a time slot. In one instance, IPA program 400 mayautomatically reschedule the partially processed and unprocessed e-mailsof the folder or category that the user was handling to another timeslot. In another instance, IPA program 400 delays reschedulingunprocessed e-mails until one or more criteria are met. For example, IPAprogram 400 reschedules unprocessed e-mails during the processing of newe-mails. In another example, IPA program 400 may reschedule unprocessede-mails during the time when a user is processing a group of e-mailsthat have an estimated processing time less than the time slot that thegroup of e-mails is auto-scheduled. In yet another embodiment, IPAprogram 400 auto-schedules e-mail processing independent of the lengthof the unscheduled time slots. In one scenario, e-mail processingscheduling is based on preferences indicated within the user profile.For example, time slots available after 12:00 PM. In another scenario,no preference is identified by IPA program 400. IPA program 400subsequently auto-schedules e-mail processing beginning with the firstunscheduled time slot. In an instance, IPA program 400 assigns a folderthat has an aggregated estimated e-mail processing time equal to or lessthan the duration of the unscheduled time slot.

Referring to step 414, in a different embodiment, IPA program 400 mayneed to analyze multiple combinations of e-mails, folders, andunscheduled time slots to determine an auto-scheduling arrangement thatmeets the requirements of a user profile and auto-schedules the highestpercentage of e-mail messages.

In another different embodiment, IPA program 400 may schedule multiplefolders for the same time slot allowing a user to select a differentgroup of e-mail messages to process without modifying the active userprofile or preferences and triggering IPA program 400 to re-categorizeand reschedule e-mail messages. IPA program 400 applies an indication tothe folders as to the nature of the e-mail content (e.g., category,priority, estimated processing time, etc.) to provide the userinformation with which to base the e-mail processing folder selection.

In step 416, IPA program 400 modifies the visibility of auto-schedulede-mail messages based on a preference within the active user profile. Inone embodiment, auto-scheduled e-mail messages are listed as individuale-mails. In once scenario, auto-scheduled e-mails are hidden from view.In another scenario, the auto-scheduled e-mails remain in the inbox ofthe user and have an indication applied to identify that the e-mails areauto-scheduled. For example, the auto-scheduled e-mails may be signifiedby a flag or colored highlighting. In another embodiment, theauto-scheduled e-mail messages are transferred into folders. In onescenario, the e-mail messages are hidden within folders, but the foldersare visible. In one instance, the folder names indicate the sortedcategories that correspond to the e-mail messages. In another instance,the name of the folder indicates the calendar time slot the e-mails wereauto-scheduled. In another scenario, one or more folders may be hiddenbased on criteria within a profile. In a different scenario,auto-scheduled e-mail messages may appear in multiple folders based onpreferences (e.g., e-mail characteristic) within the active user profileto permit a user to change focus without IPA program 400 reschedulinge-mail messages based on the activation of a different user profile.

In one embodiment, at decision step 418, IPA program 400 executes in thebackground environment of client device 120 monitoring an e-mailapplication (e.g., e-mail app 126, hosted e-mail client 106) forreceiving e-mail messages that are new. In one scenario, IPA program 400loops back (yes branch, decision step 418) to process step 406. In oneinstance, IPA program 400 identifies one or more settings within a userprofile dictating the manner in which the new e-mails are processed andauto-scheduled without further user intervention. In another instance,IPA program 400 identifies one or more settings within a user profilethat dictate a response. For example, IPA program 400 may activate UI122 for user input at process step 408 when the user begins anauto-scheduled e-mail processing time slot. In another example, IPAprogram 400 determines that a user profile setting dictates that an iconis displayed in the task bar. The icon indicates that an e-mailapplication (e.g., e-mail app 126, hosted e-mail client 106) receivednew e-mail messages. Selecting the icon permits the user to respond toIPA program 400. If IPA program 400 determines that one or more newreceived e-mail messages have a constraint or characteristic (e.g., highpriority) defined in the user profile, then IPA program 400 displays adifferent icon in the task bar. In some embodiments, the e-mailapplication (e.g., e-mail app 126, hosted e-mail client 106) providesthe icons related to receiving new e-mail messages. In another scenario,IPA program 400 pauses at decision step 418. In one instance, IPAprogram 400 periodically polls the e-mail application (e.g., e-mail app126, hosted e-mail client 106) to determine whether new e-mail messageswere received (yes branch, decision 418). In another instance, IPAprogram 400 pauses at decision step 418 until the user completesprocessing an auto-scheduled selection of e-mail messages. In yetanother instance, IPA program 400 loops back to step 406 if a user doesnot process one or more e-mail messages scheduled for a time slot orprocessed one or more e-mails from a future time slot.

In another embodiment, if IPA program 400 determines that one or morenew e-mail messages are received during the auto-scheduling operations(yes branch, decision step 418), then IPA program 400 incorporates theone or more e-mail messages that are new into the currentauto-scheduling session. In one scenario, the one or more new e-mailmessages are scheduled on a first-in first-out basis. E-mail messageswith associated constraints are scheduled based on information withinthe active user profile. In another scenario, IPA program 400 combinesthe one or more new e-mail messages with the initial group ofunprocessed e-mails and reschedules the e-mail processing time slots.

In decision step 418, IPA program determines if new e-mails arereceived. If IPA program 400 determines that no additional e-mails arereceived during the initial actions of IPA program 400 (no branch,decision step 418), then IPA program 400 terminates. In one scenario,IPA program 400 terminates unless a user activates a different e-mailapplication or logs into e-mail app 126 or hosted e-mail client 106 as adifferent user ID. In another scenario, IPA program 400 polls (e.g.,refreshes) e-mail app 126 or hosted e-mail client 106 prior toterminating. In one instance, IPA program 400 immediately polls e-mailapp 126 or hosted e-mail client 106. In another instance, IPA program400 delays polling e-mail app 126 or hosted e-mail client 106. Forexample, the e-mail polling delay (e.g. refresh delay) may be set withina user profile, or the polling delay may be a function of the e-mailapplication or integrated office application.

FIG. 5 depicts computer system 500, which is representative of server102 and client device 120, in accordance with an illustrative embodimentof the present invention. Computer system 500 is an example of a systemthat includes software and data 522. Processor(s) 504 and cache 516 aresubstantially equivalent to a multi-core processor. Computer system 500includes communications fabric 502, which provides communicationsbetween computer processor(s) 504, memory 506, persistent storage 508,communications unit 510, and input/output (I/O) interface(s) 512.Communications fabric 502 can be implemented with any architecturedesigned for passing data and/or control information between processors(such as microprocessors, communications and network processors, etc.),system memory, peripheral devices, and any other hardware componentswithin a system. For example, communications fabric 502 can beimplemented with one or more buses.

Memory 506 and persistent storage 508 are computer readable storagemedia. In this embodiment, memory 506 includes random access memory(RAM). In general, memory 506 can include any suitable volatile ornon-volatile computer readable storage media. Cache 516 is a fast memorythat enhances the performance of processors 504 by holding recentlyaccessed data and data near accessed data from memory 506.

Program instructions and data used to practice embodiments of thepresent invention may be stored in persistent storage 508 for executionby one or more of the respective processors 504 via cache 516 and one ormore memories of memory 506. In an embodiment, persistent storage 508includes a magnetic hard disk drive. Alternatively, or in addition to amagnetic hard disk drive, persistent storage 508 can include a solidstate hard drive, a semiconductor storage device, read-only memory(ROM), erasable programmable read-only memory (EPROM), flash memory, orany other computer readable storage media that is capable of storingprogram instructions or digital information.

The media used by persistent storage 508 may also be removable. Forexample, a removable hard drive may be used for persistent storage 508.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage508. Software and data 522 are stored in persistent storage 508 foraccess and/or execution by one or more of the respective processors 504via cache 516 and one or more memories of memory 506. With respect toserver 102, software and data 522 includes, e-mail file storage 104,hosted e-mail client 106, and hosted calendar client 108. With respectto client device 120, software and data 522 includes user interface (UI)122, graphical user interface (GUI) not shown, file storage 124, e-mailapplication (app) 126, scheduler/calendar application (app) 128, e-mailinteraction database 130, e-mail characterization and timing program(ECT) program 200, e-mail characteristic analysis (ECA) program 300,inbox personal assistant (IPA) program 400, and various analyticalprograms (not shown).

Communications unit 510, in these examples, provides for communicationswith other data processing systems or devices, including resources ofserver 102 and client device 120. In these examples, communications unit510 includes one or more network interface cards. Communications unit510 may provide communications through the use of either or bothphysical and wireless communications links. Program instructions anddata used to practice embodiments of the present invention may bedownloaded to persistent storage 508 through communications unit 510.

I/O interface(s) 512 allows for input and output of data with otherdevices that may be connected to each computer system. For example, I/Ointerface 512 may provide a connection to external devices 518 such as akeyboard, keypad, a touch screen, and/or some other suitable inputdevice. External devices 518 can also include portable computer readablestorage media such as, for example, thumb drives, portable optical ormagnetic disks, and memory cards. Software and data, and software anddata 522 used to practice embodiments of the present invention can bestored on such portable computer readable storage media and can beloaded onto persistent storage 508 via I/O interface(s) 512. I/Ointerface(s) 512 also connect to a display 520.

Display 520 provides a mechanism to display data to a user and may be,for example, a computer monitor. Display 520 can also function as atouch screen, such as the display of a tablet computer or a smartphone.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

What is claimed is:
 1. A method for processing electronic messages, themethod comprising: identifying, by one or more computer processors, oneor more electronic messages; determining, by one or more computerprocessors, one or more e-mail characteristics respectively associatedwith the identified one or more electronic messages; determining, by oneor more computer processors, an estimated electronic message processingduration for the identified one or more electronic messages based, atleast in part, on weighting factors that are associated with thedetermined one or more e-mail characteristics; identifying, by one ormore computer processors, a first unscheduled time slot within anelectronic calendar of a user; scheduling, by one or more computerprocessors, the identified one or more electronic messages within theidentified first unscheduled time slot of the electronic calendar of theuser; creating, by one or more computer processors, an electronicmessage folder within an e-mail interface of the user, wherein theelectronic message folder is associated with a time slot scheduled forprocessing one or more scheduled electronic messages; identifying, byone or more computer processors, a first electronic message thatincludes a first category flag from among the one or more identifiedelectronic messages; adding, by one or more computer processors, the oneor more scheduled electronic messages associated with the scheduled timeslot to the electronic message folder, wherein adding the one or morescheduled electronic messages associated with the scheduled time slot tothe electronic message folder further comprise: determining, by one ormore computer processors, whether the first electronic message thatincludes the first category flag is scheduled within the scheduled timeslot; and in response to determining that the first electronic messagethat includes the first category flag is scheduled within the scheduledtime slot, excluding, by one or more computer processors, otherelectronic messages that include the first category flag from thescheduled time slot; assigning, by one or more computer processors, anindication to an electronic message folder that includes one or morescheduled electronic messages, wherein the indication assigned to theelectronic message folder identifies the scheduled time slot of one ormore electronic messages of the electronic message folder and isdepicted in the e-mail interface of the user; in response to determiningthat the user receives an additional electronic message prior toprocessing at least one of the one or more scheduled electronic messagesassociated with the scheduled time slot, identifying, by one or morecomputer processors, a first unprocessed electronic message of the oneor more scheduled electronic messages associated with the scheduled timeslot, wherein the identified first unprocessed electronic messageincludes a category flag that is different than a respective categoryflag of the additional electronic message; and rescheduling, by one ormore computer processors, the received additional electronic message andthe first unprocessed electronic message to a second unscheduled timeslot based on determination that the second unscheduled time slot doesnot also include electronic messages with respective category flags thatmatch the received additional electronic message and the firstunprocessed electronic message.
 2. The method of claim 1, wherein theweighting factors that are associated with the determined one or moree-mail characteristics associated with an identified electronic messageare based on an analysis of historic electronic message processing timedata that corresponds to the user and further comprising: estimating, byone or more computer processors, a time duration for the user to readthe identified electronic message; and determining, by one or morecomputer processors, an estimated time duration to perform one or moreadditional actions associated with creating a response to the identifiedelectronic message.
 3. The method of claim 1, wherein scheduling anelectronic message is based, at least in part, on at least one of aconstraint associated with the electronic message and an informationwithin a user profile of the user, and wherein scheduling the identifiedone or more electronic messages within the identified first unscheduledtime slot further comprises: determining, by one or more computerprocessors, that the determined estimated electronic message processingduration for the identified one or more electronic messages,respectively associated with different category flags, is longer thanthe identified first unscheduled time slot; in response to determiningthat the determined estimated electronic message processing duration forthe identified one or more electronic messages, respectively associatedwith different category flags, is longer than the identified firstunscheduled time slot, identifying, by one or more computer processors,a third unscheduled time slot within the electronic calendar of theuser, wherein a time duration of the third unscheduled time slot is atleast as long as the determined estimated electronic message processingduration for the identified one or more electronic messages; and programinstructions to schedule the identified one or more electronic messageswithin the identified third unscheduled time slot of the electroniccalendar of the user.
 4. The method of claim 1, wherein scheduling theidentified one or more electronic messages within the identified firstunscheduled time slot further comprises: determining, by one or morecomputer processors, that the determined estimated electronic messageprocessing duration for the identified one or more electronic messagesis less than or equal to the identified first unscheduled time slot; andin response to determining that the determined estimated electronicmessage processing duration for the identified one or more electronicmessages is less than or equal to the identified first unscheduled timeslot, scheduling, by one or more computer processors, the identified oneor more electronic messages within the identified first unscheduled timeslot of the electronic calendar of the user.
 5. The method of claim 1,wherein scheduling the identified one or more electronic messages withinthe identified first unscheduled time slot further comprises:determining, by one or more computer processors, that the determinedestimated electronic message processing duration for the identified oneor more electronic messages is longer than the identified firstunscheduled time slot; in response to determining that the determinedestimated electronic message processing duration for the identified oneor more electronic messages is longer than the identified firstunscheduled time slot, identifying, by one or more processors, acombination of two or more unscheduled time slots within the electroniccalendar of the user, wherein a time duration of the combination of twoor more unscheduled time slots are at least as long as the determinedestimated electronic message processing duration for the identified oneor more electronic messages; and scheduling, by one or more computerprocessors, the identified one or more electronic messages within theidentified combination of two or more unscheduled time slots of theelectronic calendar of the user.
 6. The method of claim 1, furthercomprising: determining, by one or more computer processors, anaggregated estimated electronic message processing time duration foreach of the one or more electronic message folders that contain at leastone electronic message; and scheduling, by one or more computerprocessors, each of the one or more electronic message folders thatcontain at least one electronic message within one or more unscheduledtime slots of the electronic calendar of the user, based at least inpart, on the user profile of the user.
 7. The method of claim 1, whereinthe weighting factors that are associated with the one or more e-mailcharacteristics are based on an analysis of crowd-sourced electronicmessage processing time data associated with a plurality of other usersand further comprising: estimating, by one or more computer processors,a time duration for the plurality of other users to read the identifiedelectronic message; and determining, by one or more computer processors,an estimated time duration for the plurality of other users to performone or more additional actions associated with creating a response tothe identified electronic message.
 8. The method of claim 1, wherein oneor more e-mail characteristics respectively associated with theidentified one or more electronic messages are selected from the groupconsisting of meta-data information associated with an electronicmessage, one or more keywords, one or more attachments, meta-dataassociated with an attachment, and one or more embedded Internet links.9. The method of claim 2, wherein the one or more additional actionsassociated with creating a response to the identified message areselected from the group consisting of accessing one or more attachments,accessing an Internet link, downloading one or more items of content,review an item of content, modifying an item of content, and accessingone or more other electronic messages.